Integrated circuits may be designed and optimized across a wide variety of different tradeoffs and optimized across a number of different parameters. Frequently a design has a target timing requirement necessary to achieve a target performance. In a typical synchronous design, the timing requirement represents a target clock rate and meeting the timing requirement means that the device will operate when the clock signal is operated at the target frequency.
Designs sometimes go through an optimization process in an attempt to adjust the size and placement of cells to reduce the worst negative slack (i.e. to reduce the difference between the timing requirement and the slowest path). An example of chip optimization to achieve timing closure is described in U.S. Pat. No. 7,107,551, incorporated herein by reference. Once a chip design has been optimized to the point that it meets the target timing requirement, it is often desirable to optimize other criteria, such as power consumption, so long as the timing requirement continues to be met.
Unfortunately, the amount of computational resources necessary to compute the timing of a design after a change has been made is large, even when employing incremental timing analysis. Consequently, some existing optimization techniques do not perform detailed timing analysis and instead use less accurate but faster techniques to analyze timing when performing optimizations after timing requirements are met. Because of the reduced accuracy, these optimization techniques are necessarily more conservative and are thus not able to take advantages of some optimizations. Alternatively, techniques that utilize a complete timing analysis of each change utilize a large amount of computation resources and are thus not able to explore a large number of possible optimization in a reasonable amount of time for complex designs.
Thus, there is a need for more efficient optimization mechanisms that can explore a greater number of optimizations with fewer computation resources and can do them in the context of full detailed timing analysis.